import 'package:equatable/equatable.dart';
import 'package:meta/meta.dart';

abstract class PrimaryColor extends Equatable {
  const PrimaryColor(int colorValue) : colorValue = colorValue & 0xffffff;

  final int colorValue;

  @override
  @mustCallSuper
  List<Object?> get props {
    return [
      colorValue,
    ];
  }
}

class LightThemePrimaryColor extends PrimaryColor {
  const LightThemePrimaryColor(super.colorValue);

  const LightThemePrimaryColor.ruby() : super(0xe91e63);

  const LightThemePrimaryColor.radicalRed() : super(0xff2d55);

  const LightThemePrimaryColor.redOrange() : super(0xfb3d38);

  const LightThemePrimaryColor.venetianRed() : super(0xca0814);

  const LightThemePrimaryColor.paleVioletRed() : super(0xe96ea4);

  const LightThemePrimaryColor.mediumOrchid() : super(0xae59db);

  const LightThemePrimaryColor.mediumPurple() : super(0x9476eb);

  const LightThemePrimaryColor.dodgerBlue() : super(0x157efb);

  const LightThemePrimaryColor.summerSky() : super(0x21c2eb);

  const LightThemePrimaryColor.malibu() : super(0x54adf6);

  const LightThemePrimaryColor.lightSlateGrey() : super(0x6e839d);

  const LightThemePrimaryColor.emerald() : super(0x3dc65f);

  const LightThemePrimaryColor.limeGreen() : super(0x32b132);

  const LightThemePrimaryColor.tangerineYellow() : super(0xffcc00);

  const LightThemePrimaryColor.neonCarrot() : super(0xfd9426);

  const LightThemePrimaryColor.black() : super(0x000000);
}

class DarkThemePrimaryColor extends PrimaryColor {
  const DarkThemePrimaryColor(super.colorValue);

  const DarkThemePrimaryColor.ruby() : super(0xe91e63);

  const DarkThemePrimaryColor.radicalRed() : super(0xff375f);

  const DarkThemePrimaryColor.sunsetOrange() : super(0xfb4740);

  const DarkThemePrimaryColor.venetianRed() : super(0xca0814);

  const DarkThemePrimaryColor.paleVioletRed() : super(0xe96ea4);

  const DarkThemePrimaryColor.mediumOrchid() : super(0xbe61f0);

  const DarkThemePrimaryColor.mediumPurple() : super(0x9476eb);

  const DarkThemePrimaryColor.dodgerBlue() : super(0x1c87fb);

  const DarkThemePrimaryColor.summerSky() : super(0x21c2eb);

  const DarkThemePrimaryColor.malibu() : super(0x54adf6);

  const DarkThemePrimaryColor.lightSlateGrey() : super(0x6e839d);

  const DarkThemePrimaryColor.emerald() : super(0x3bcf5e);

  const DarkThemePrimaryColor.limeGreen() : super(0x32b132);

  const DarkThemePrimaryColor.parisDaisy() : super(0xfae647);

  const DarkThemePrimaryColor.carrotOrange() : super(0xee8222);

  const DarkThemePrimaryColor.white() : super(0xffffff);
}
